剛在整理資料的時候看到這個忘了回在哪個討論串的回應,重新整理一下分享給大家好了。這是個關於到底用 ORM 還是 raw SQL 的宗教戰爭。
---
這個 project 小編一開始是用 ORM,但才過個兩天就轉回 raw SQL 了。原因是有些 table name 有參數,用 ORM 的寫法會比較不直覺。
所以小編在寫 raw SQL 的時候就會遇到幾個問題,像是參數如何傳到 SQL 語法裡面。這時候語言層的 string interpolation 跟 SQL 層的 parameterized 就很好用。
但如果有用到 string interpolation 的話就一定要處理 SQL injection 的問題,還有就是 return 的時候是 cursor 還是實際的資料,這都是要自己去想清楚的。
不過說到底就是看場景而定,小編自己現在是比較偏好寫 raw SQL 就是了。畢竟 raw SQL 有 performance issue 的時候,還比較好調整。
* image from https://live.staticflickr.com/4030/4228947679_76ea6eff50_b.jpg
#sql #orm